[INFO] cloning repository https://github.com/lbwnblb/rust_demo01
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lbwnblb/rust_demo01" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flbwnblb%2Frust_demo01", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flbwnblb%2Frust_demo01'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7c700d6d8104f38a53015c04e86b5b12ec3216c8
[INFO] checking lbwnblb/rust_demo01 against try#3857be5045fe74bd0f296f6f4c23db10f8857f73 for pr-156807
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flbwnblb%2Frust_demo01" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lbwnblb/rust_demo01
[INFO] finished tweaking git repo https://github.com/lbwnblb/rust_demo01
[INFO] tweaked toml for git repo https://github.com/lbwnblb/rust_demo01 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lbwnblb/rust_demo01 on toolchain 3857be5045fe74bd0f296f6f4c23db10f8857f73
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lbwnblb/rust_demo01 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-socks v0.5.2
[INFO] [stderr]   Downloaded anstyle-wincon v3.0.7
[INFO] [stderr]   Downloaded anstream v0.6.18
[INFO] [stderr]   Downloaded windows-link v0.1.1
[INFO] [stderr]   Downloaded errno v0.3.12
[INFO] [stderr]   Downloaded icu_properties v2.0.0
[INFO] [stderr]   Downloaded anstyle-parse v0.2.6
[INFO] [stderr]   Downloaded rustversion v1.0.20
[INFO] [stderr]   Downloaded data-encoding v2.9.0
[INFO] [stderr]   Downloaded clap v4.5.38
[INFO] [stderr]   Downloaded socket2 v0.5.9
[INFO] [stderr]   Downloaded syn v2.0.101
[INFO] [stderr]   Downloaded serde_derive v1.0.219
[INFO] [stderr]   Downloaded redox_syscall v0.5.12
[INFO] [stderr]   Downloaded openssl-sys v0.9.108
[INFO] [stderr]   Downloaded unicode-width v0.2.0
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.25
[INFO] [stderr]   Downloaded cc v1.2.23
[INFO] [stderr]   Downloaded anstyle-query v1.1.2
[INFO] [stderr]   Downloaded serde_json v1.0.140
[INFO] [stderr]   Downloaded r-efi v5.2.0
[INFO] [stderr]   Downloaded tokio-macros v2.5.0
[INFO] [stderr]   Downloaded bumpalo v3.17.0
[INFO] [stderr]   Downloaded icu_properties_data v2.0.0
[INFO] [stderr]   Downloaded clap_lex v0.7.4
[INFO] [stderr]   Downloaded smallvec v1.15.0
[INFO] [stderr]   Downloaded serde v1.0.219
[INFO] [stderr]   Downloaded zerocopy v0.8.25
[INFO] [stderr]   Downloaded is_terminal_polyfill v1.70.1
[INFO] [stderr]   Downloaded ferris-says v0.3.2
[INFO] [stderr]   Downloaded libc v0.2.172
[INFO] [stderr]   Downloaded miniz_oxide v0.8.8
[INFO] [stderr]   Downloaded openssl v0.10.72
[INFO] [stderr]   Downloaded colorchoice v1.0.3
[INFO] [stderr]   Downloaded backtrace v0.3.75
[INFO] [stderr]   Downloaded clap_builder v4.5.38
[INFO] [stderr]   Downloaded tokio v1.45.0
[INFO] [stderr]   Downloaded rustix v1.0.7
[INFO] [stderr]   Downloaded tempfile v3.20.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ea3e11a81ac1de0d9d536f26b9f5dfdbc8b23b37df16011d46720de4e264d20d
[INFO] running `Command { std: "docker" "start" "-a" "ea3e11a81ac1de0d9d536f26b9f5dfdbc8b23b37df16011d46720de4e264d20d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ea3e11a81ac1de0d9d536f26b9f5dfdbc8b23b37df16011d46720de4e264d20d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ea3e11a81ac1de0d9d536f26b9f5dfdbc8b23b37df16011d46720de4e264d20d", kill_on_drop: false }`
[INFO] [stdout] ea3e11a81ac1de0d9d536f26b9f5dfdbc8b23b37df16011d46720de4e264d20d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 068fb0736d8cb375ccbaec4d924d7142d4890327fc4ba31aa78c95dd179d376f
[INFO] running `Command { std: "docker" "start" "-a" "068fb0736d8cb375ccbaec4d924d7142d4890327fc4ba31aa78c95dd179d376f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]    Compiling cc v1.2.23
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling icu_properties_data v2.0.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling openssl v0.10.72
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking anstyle-parse v0.2.6
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling openssl-sys v0.9.108
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking anstyle v1.0.10
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking anstyle-query v1.1.2
[INFO] [stderr]     Checking colorchoice v1.0.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking anstream v0.6.18
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]     Checking smawk v0.3.2
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking clap_lex v0.7.4
[INFO] [stderr]     Checking unicode-linebreak v0.1.5
[INFO] [stderr]     Checking data-encoding v2.9.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking textwrap v0.16.2
[INFO] [stderr]     Checking clap_builder v4.5.38
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking clap v4.5.38
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking ferris-says v0.3.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]     Checking tokio v1.45.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.0
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tokio-socks v0.5.2
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking tungstenite v0.20.1
[INFO] [stderr]     Checking tokio-tungstenite v0.20.1
[INFO] [stderr]     Checking rust_demo01 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/client_new.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, Write};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TcpStream`
[INFO] [stdout]  --> src/main.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::net::{TcpListener, TcpStream};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/main.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{Read, Write};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TcpStream`
[INFO] [stdout]  --> src/main.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::net::{TcpListener, TcpStream};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/main.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{Read, Write};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `(std::string::String, u16): ToProxyAddrs` is not satisfied
[INFO] [stdout]    --> src/client_new.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let stream = tokio_socks::tcp::Socks5Stream::connect(
[INFO] [stdout]     |                      --------------------------------------- required by a bound introduced by this call
[INFO] [stdout] 121 |             proxy_addr,
[INFO] [stdout]     |             ^^^^^^^^^^ the trait `ToProxyAddrs` is not implemented for `(std::string::String, u16)`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ToProxyAddrs`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/lib.rs:33:9
[INFO] [stdout]     |
[INFO] [stdout]  33 |         impl ToProxyAddrs for $t {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `(IpAddr, u16)`
[INFO] [stdout]     |         `(Ipv4Addr, u16)`
[INFO] [stdout]     |         `(Ipv6Addr, u16)`
[INFO] [stdout] ...
[INFO] [stdout]  44 | trivial_impl_to_proxy_addrs!((IpAddr, u16));
[INFO] [stdout]     | ------------------------------------------- in this macro invocation
[INFO] [stdout]  45 | trivial_impl_to_proxy_addrs!((Ipv4Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout]  46 | trivial_impl_to_proxy_addrs!((Ipv6Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout] ...
[INFO] [stdout]  67 | impl<'a> ToProxyAddrs for (&'a str, u16) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(&str, u16)`
[INFO] [stdout] note: required by a bound in `Socks5Stream::<tokio::net::TcpStream>::connect`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/tcp/socks5.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  70 |     pub async fn connect<'t, P, T>(proxy: P, target: T) -> Result<Socks5Stream<TcpStream>>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout]  71 |     where
[INFO] [stdout]  72 |         P: ToProxyAddrs,
[INFO] [stdout]     |            ^^^^^^^^^^^^ required by this bound in `Socks5Stream::<TcpStream>::connect`
[INFO] [stdout]     = note: this error originates in the macro `trivial_impl_to_proxy_addrs` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `(std::string::String, u16): ToProxyAddrs` is not satisfied
[INFO] [stdout]    --> src/client_new.rs:120:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |           let stream = tokio_socks::tcp::Socks5Stream::connect(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 121 | |             proxy_addr,
[INFO] [stdout] 122 | |             target_addr
[INFO] [stdout] 123 | |         ).await.map_err(|e| {
[INFO] [stdout]     | |_________^ the trait `ToProxyAddrs` is not implemented for `(std::string::String, u16)`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ToProxyAddrs`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/lib.rs:33:9
[INFO] [stdout]     |
[INFO] [stdout]  33 |         impl ToProxyAddrs for $t {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `(IpAddr, u16)`
[INFO] [stdout]     |         `(Ipv4Addr, u16)`
[INFO] [stdout]     |         `(Ipv6Addr, u16)`
[INFO] [stdout] ...
[INFO] [stdout]  44 | trivial_impl_to_proxy_addrs!((IpAddr, u16));
[INFO] [stdout]     | ------------------------------------------- in this macro invocation
[INFO] [stdout]  45 | trivial_impl_to_proxy_addrs!((Ipv4Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout]  46 | trivial_impl_to_proxy_addrs!((Ipv6Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout] ...
[INFO] [stdout]  67 | impl<'a> ToProxyAddrs for (&'a str, u16) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(&str, u16)`
[INFO] [stdout] note: required by a bound in `Socks5Stream::<tokio::net::TcpStream>::connect`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/tcp/socks5.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  70 |     pub async fn connect<'t, P, T>(proxy: P, target: T) -> Result<Socks5Stream<TcpStream>>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout]  71 |     where
[INFO] [stdout]  72 |         P: ToProxyAddrs,
[INFO] [stdout]     |            ^^^^^^^^^^^^ required by this bound in `Socks5Stream::<TcpStream>::connect`
[INFO] [stdout]     = note: this error originates in the macro `trivial_impl_to_proxy_addrs` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `(std::string::String, u16): ToProxyAddrs` is not satisfied
[INFO] [stdout]    --> src/client_new.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |         ).await.map_err(|e| {
[INFO] [stdout]     |           ^^^^^ the trait `ToProxyAddrs` is not implemented for `(std::string::String, u16)`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ToProxyAddrs`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/lib.rs:33:9
[INFO] [stdout]     |
[INFO] [stdout]  33 |         impl ToProxyAddrs for $t {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `(IpAddr, u16)`
[INFO] [stdout]     |         `(Ipv4Addr, u16)`
[INFO] [stdout]     |         `(Ipv6Addr, u16)`
[INFO] [stdout] ...
[INFO] [stdout]  44 | trivial_impl_to_proxy_addrs!((IpAddr, u16));
[INFO] [stdout]     | ------------------------------------------- in this macro invocation
[INFO] [stdout]  45 | trivial_impl_to_proxy_addrs!((Ipv4Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout]  46 | trivial_impl_to_proxy_addrs!((Ipv6Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout] ...
[INFO] [stdout]  67 | impl<'a> ToProxyAddrs for (&'a str, u16) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(&str, u16)`
[INFO] [stdout] note: required by a bound in `Socks5Stream::<tokio::net::TcpStream>::connect`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/tcp/socks5.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  70 |     pub async fn connect<'t, P, T>(proxy: P, target: T) -> Result<Socks5Stream<TcpStream>>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout]  71 |     where
[INFO] [stdout]  72 |         P: ToProxyAddrs,
[INFO] [stdout]     |            ^^^^^^^^^^^^ required by this bound in `Socks5Stream::<TcpStream>::connect`
[INFO] [stdout]     = note: this error originates in the macro `trivial_impl_to_proxy_addrs` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tungstenite::WebSocket::<Stream>::read_message`: Use `read`
[INFO] [stdout]   --> src/main.rs:71:43
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 let msg = match websocket.read_message() {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tungstenite::WebSocket::<Stream>::write_message`: Use `send`
[INFO] [stdout]   --> src/main.rs:91:41
[INFO] [stdout]    |
[INFO] [stdout] 91 |                         match websocket.write_message(Message::Text(response)) {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tungstenite::WebSocket::<Stream>::write_message`: Use `send`
[INFO] [stdout]    --> src/main.rs:107:51
[INFO] [stdout]     |
[INFO] [stdout] 107 |                         if let Err(e) = websocket.write_message(Message::Pong(data)) {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/main.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{Read, Write};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 |             let mut stream_clone = stream.try_clone().expect("无法克隆流");
[INFO] [stdout]    |                 ----^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tungstenite::WebSocket::<Stream>::read_message`: Use `read`
[INFO] [stdout]   --> src/main.rs:71:43
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 let msg = match websocket.read_message() {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tungstenite::WebSocket::<Stream>::write_message`: Use `send`
[INFO] [stdout]   --> src/main.rs:91:41
[INFO] [stdout]    |
[INFO] [stdout] 91 |                         match websocket.write_message(Message::Text(response)) {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tungstenite::WebSocket::<Stream>::write_message`: Use `send`
[INFO] [stdout]    --> src/main.rs:107:51
[INFO] [stdout]     |
[INFO] [stdout] 107 |                         if let Err(e) = websocket.write_message(Message::Pong(data)) {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/main.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{Read, Write};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 |             let mut stream_clone = stream.try_clone().expect("无法克隆流");
[INFO] [stdout]    |                 ----^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `goto_default_connection`
[INFO] [stdout]   --> src/client.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | macro_rules! goto_default_connection {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `native_tls::TlsConnector`
[INFO] [stdout]   --> src/client.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use native_tls::TlsConnector;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_native_tls::TlsConnector as TokioTlsConnector`
[INFO] [stdout]   --> src/client.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use tokio_native_tls::TlsConnector as TokioTlsConnector;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::WebSocketStream`
[INFO] [stdout]    --> src/client.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 256 |             use tokio_tungstenite::WebSocketStream;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `goto_default_connection`
[INFO] [stdout]   --> src/client.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | macro_rules! goto_default_connection {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `native_tls::TlsConnector`
[INFO] [stdout]   --> src/client.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use native_tls::TlsConnector;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_native_tls::TlsConnector as TokioTlsConnector`
[INFO] [stdout]   --> src/client.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use tokio_native_tls::TlsConnector as TokioTlsConnector;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::WebSocketStream`
[INFO] [stdout]    --> src/client.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 256 |             use tokio_tungstenite::WebSocketStream;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: the type `Arc` does not implement `Copy`
[INFO] [stdout]    --> src/client_new.rs:424:14
[INFO] [stdout]     |
[INFO] [stdout] 295 |     let connected = Arc::new(Mutex::new(true));
[INFO] [stdout]     |         --------- this move could be avoided by cloning the original `Arc`, which is inexpensive
[INFO] [stdout] ...
[INFO] [stdout] 345 |     let receive_task = tokio::spawn(async move {
[INFO] [stdout]     |                                     ---------- value moved here
[INFO] [stdout] ...
[INFO] [stdout] 351 |         while let Some(result) = ws_receiver.next().await {
[INFO] [stdout]     |         ------------------------------------------------- inside of this loop
[INFO] [stdout] ...
[INFO] [stdout] 382 |                                 *connected.lock().await = false;
[INFO] [stdout]     |                                  --------- variable moved due to use in coroutine
[INFO] [stdout] ...
[INFO] [stdout] 424 |         if !*connected.lock().await {
[INFO] [stdout]     |              ^^^^^^^^^ value borrowed here after move
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `Arc::clone`
[INFO] [stdout]     = note: borrow occurs due to deref coercion to `tokio::sync::Mutex<bool>`
[INFO] [stdout] help: consider cloning the value before moving it into the closure
[INFO] [stdout]     |
[INFO] [stdout] 345 ~     let value = connected.clone();
[INFO] [stdout] 346 ~     let receive_task = tokio::spawn(async move {
[INFO] [stdout] 347 |         // 记录上次发送pong的时间
[INFO] [stdout] ...
[INFO] [stdout] 382 |                                 println!("发送Pong失败: {:?}", e);
[INFO] [stdout] 383 ~                                 *value.lock().await = false;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/client_new.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, Write};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/client_new.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, Write};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |             std::env::set_var("HTTP_PROXY", proxy_url_str);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:187:13
[INFO] [stdout]     |
[INFO] [stdout] 187 |             std::env::set_var("HTTPS_PROXY", proxy_url_str);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |             std::env::set_var("WSS_PROXY", proxy_url_str); // 特别为WebSocket添加
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 190 |             std::env::set_var("NO_PROXY", "localhost,127.0.0.1,::1");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `remove_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |         std::env::remove_var("HTTP_PROXY");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `remove_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |         std::env::remove_var("HTTPS_PROXY");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0133, E0277, E0382.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust_demo01` (bin "client_new" test) due to 10 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0277]: the trait bound `(std::string::String, u16): ToProxyAddrs` is not satisfied
[INFO] [stdout]    --> src/client_new.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let stream = tokio_socks::tcp::Socks5Stream::connect(
[INFO] [stdout]     |                      --------------------------------------- required by a bound introduced by this call
[INFO] [stdout] 121 |             proxy_addr,
[INFO] [stdout]     |             ^^^^^^^^^^ the trait `ToProxyAddrs` is not implemented for `(std::string::String, u16)`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ToProxyAddrs`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/lib.rs:33:9
[INFO] [stdout]     |
[INFO] [stdout]  33 |         impl ToProxyAddrs for $t {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `(IpAddr, u16)`
[INFO] [stdout]     |         `(Ipv4Addr, u16)`
[INFO] [stdout]     |         `(Ipv6Addr, u16)`
[INFO] [stdout] ...
[INFO] [stdout]  44 | trivial_impl_to_proxy_addrs!((IpAddr, u16));
[INFO] [stdout]     | ------------------------------------------- in this macro invocation
[INFO] [stdout]  45 | trivial_impl_to_proxy_addrs!((Ipv4Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout]  46 | trivial_impl_to_proxy_addrs!((Ipv6Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout] ...
[INFO] [stdout]  67 | impl<'a> ToProxyAddrs for (&'a str, u16) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(&str, u16)`
[INFO] [stdout] note: required by a bound in `Socks5Stream::<tokio::net::TcpStream>::connect`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/tcp/socks5.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  70 |     pub async fn connect<'t, P, T>(proxy: P, target: T) -> Result<Socks5Stream<TcpStream>>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout]  71 |     where
[INFO] [stdout]  72 |         P: ToProxyAddrs,
[INFO] [stdout]     |            ^^^^^^^^^^^^ required by this bound in `Socks5Stream::<TcpStream>::connect`
[INFO] [stdout]     = note: this error originates in the macro `trivial_impl_to_proxy_addrs` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `(std::string::String, u16): ToProxyAddrs` is not satisfied
[INFO] [stdout]    --> src/client_new.rs:120:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |           let stream = tokio_socks::tcp::Socks5Stream::connect(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 121 | |             proxy_addr,
[INFO] [stdout] 122 | |             target_addr
[INFO] [stdout] 123 | |         ).await.map_err(|e| {
[INFO] [stdout]     | |_________^ the trait `ToProxyAddrs` is not implemented for `(std::string::String, u16)`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ToProxyAddrs`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/lib.rs:33:9
[INFO] [stdout]     |
[INFO] [stdout]  33 |         impl ToProxyAddrs for $t {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `(IpAddr, u16)`
[INFO] [stdout]     |         `(Ipv4Addr, u16)`
[INFO] [stdout]     |         `(Ipv6Addr, u16)`
[INFO] [stdout] ...
[INFO] [stdout]  44 | trivial_impl_to_proxy_addrs!((IpAddr, u16));
[INFO] [stdout]     | ------------------------------------------- in this macro invocation
[INFO] [stdout]  45 | trivial_impl_to_proxy_addrs!((Ipv4Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout]  46 | trivial_impl_to_proxy_addrs!((Ipv6Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout] ...
[INFO] [stdout]  67 | impl<'a> ToProxyAddrs for (&'a str, u16) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(&str, u16)`
[INFO] [stdout] note: required by a bound in `Socks5Stream::<tokio::net::TcpStream>::connect`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/tcp/socks5.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  70 |     pub async fn connect<'t, P, T>(proxy: P, target: T) -> Result<Socks5Stream<TcpStream>>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout]  71 |     where
[INFO] [stdout]  72 |         P: ToProxyAddrs,
[INFO] [stdout]     |            ^^^^^^^^^^^^ required by this bound in `Socks5Stream::<TcpStream>::connect`
[INFO] [stdout]     = note: this error originates in the macro `trivial_impl_to_proxy_addrs` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `(std::string::String, u16): ToProxyAddrs` is not satisfied
[INFO] [stdout]    --> src/client_new.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |         ).await.map_err(|e| {
[INFO] [stdout]     |           ^^^^^ the trait `ToProxyAddrs` is not implemented for `(std::string::String, u16)`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ToProxyAddrs`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/lib.rs:33:9
[INFO] [stdout]     |
[INFO] [stdout]  33 |         impl ToProxyAddrs for $t {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `(IpAddr, u16)`
[INFO] [stdout]     |         `(Ipv4Addr, u16)`
[INFO] [stdout]     |         `(Ipv6Addr, u16)`
[INFO] [stdout] ...
[INFO] [stdout]  44 | trivial_impl_to_proxy_addrs!((IpAddr, u16));
[INFO] [stdout]     | ------------------------------------------- in this macro invocation
[INFO] [stdout]  45 | trivial_impl_to_proxy_addrs!((Ipv4Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout]  46 | trivial_impl_to_proxy_addrs!((Ipv6Addr, u16));
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout] ...
[INFO] [stdout]  67 | impl<'a> ToProxyAddrs for (&'a str, u16) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(&str, u16)`
[INFO] [stdout] note: required by a bound in `Socks5Stream::<tokio::net::TcpStream>::connect`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-socks-0.5.2/src/tcp/socks5.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  70 |     pub async fn connect<'t, P, T>(proxy: P, target: T) -> Result<Socks5Stream<TcpStream>>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout]  71 |     where
[INFO] [stdout]  72 |         P: ToProxyAddrs,
[INFO] [stdout]     |            ^^^^^^^^^^^^ required by this bound in `Socks5Stream::<TcpStream>::connect`
[INFO] [stdout]     = note: this error originates in the macro `trivial_impl_to_proxy_addrs` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: the type `Arc` does not implement `Copy`
[INFO] [stdout]    --> src/client_new.rs:424:14
[INFO] [stdout]     |
[INFO] [stdout] 295 |     let connected = Arc::new(Mutex::new(true));
[INFO] [stdout]     |         --------- this move could be avoided by cloning the original `Arc`, which is inexpensive
[INFO] [stdout] ...
[INFO] [stdout] 345 |     let receive_task = tokio::spawn(async move {
[INFO] [stdout]     |                                     ---------- value moved here
[INFO] [stdout] ...
[INFO] [stdout] 351 |         while let Some(result) = ws_receiver.next().await {
[INFO] [stdout]     |         ------------------------------------------------- inside of this loop
[INFO] [stdout] ...
[INFO] [stdout] 382 |                                 *connected.lock().await = false;
[INFO] [stdout]     |                                  --------- variable moved due to use in coroutine
[INFO] [stdout] ...
[INFO] [stdout] 424 |         if !*connected.lock().await {
[INFO] [stdout]     |              ^^^^^^^^^ value borrowed here after move
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `Arc::clone`
[INFO] [stdout]     = note: borrow occurs due to deref coercion to `tokio::sync::Mutex<bool>`
[INFO] [stdout] help: consider cloning the value before moving it into the closure
[INFO] [stdout]     |
[INFO] [stdout] 345 ~     let value = connected.clone();
[INFO] [stdout] 346 ~     let receive_task = tokio::spawn(async move {
[INFO] [stdout] 347 |         // 记录上次发送pong的时间
[INFO] [stdout] ...
[INFO] [stdout] 382 |                                 println!("发送Pong失败: {:?}", e);
[INFO] [stdout] 383 ~                                 *value.lock().await = false;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/client_new.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, Write};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |             std::env::set_var("HTTP_PROXY", proxy_url_str);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust_demo01` (bin "client_new") due to 10 previous errors; 2 warnings emitted
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:187:13
[INFO] [stdout]     |
[INFO] [stdout] 187 |             std::env::set_var("HTTPS_PROXY", proxy_url_str);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |             std::env::set_var("WSS_PROXY", proxy_url_str); // 特别为WebSocket添加
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 190 |             std::env::set_var("NO_PROXY", "localhost,127.0.0.1,::1");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `remove_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |         std::env::remove_var("HTTP_PROXY");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `remove_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/client_new.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |         std::env::remove_var("HTTPS_PROXY");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client.rs:292:18
[INFO] [stdout]     |
[INFO] [stdout] 292 |             let (mut ws_sender, mut ws_receiver) = ws_stream.split();
[INFO] [stdout]     |                  ----^^^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0133, E0277, E0382.
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client.rs:292:18
[INFO] [stdout]     |
[INFO] [stdout] 292 |             let (mut ws_sender, mut ws_receiver) = ws_stream.split();
[INFO] [stdout]     |                  ----^^^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client.rs:598:10
[INFO] [stdout]     |
[INFO] [stdout] 598 |     let (mut ws_sender, mut ws_receiver) = ws_stream.split();
[INFO] [stdout]     |          ----^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/client.rs:301:17
[INFO] [stdout]     |
[INFO] [stdout] 301 |             for i in 1..2 {  // 只发送一条，避免被断开连接
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/client.rs:556:43
[INFO] [stdout]     |
[INFO] [stdout] 556 | async fn connect_with_env_proxy(url: Url, config: &Config, timeout_secs: u64, tls_connector: Option<native_tls::TlsConnector>) -> R...
[INFO] [stdout]     |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tls_connector`
[INFO] [stdout]    --> src/client.rs:556:79
[INFO] [stdout]     |
[INFO] [stdout] 556 | ...timeout_secs: u64, tls_connector: Option<native_tls::TlsConnector>) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tls_connector`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/client.rs:607:9
[INFO] [stdout]     |
[INFO] [stdout] 607 |     for i in 1..2 {  // 只发送一条，避免被断开连接
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client.rs:931:9
[INFO] [stdout]     |
[INFO] [stdout] 931 |     let mut config = Config {
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client.rs:598:10
[INFO] [stdout]     |
[INFO] [stdout] 598 |     let (mut ws_sender, mut ws_receiver) = ws_stream.split();
[INFO] [stdout]     |          ----^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/client.rs:301:17
[INFO] [stdout]     |
[INFO] [stdout] 301 |             for i in 1..2 {  // 只发送一条，避免被断开连接
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/client.rs:556:43
[INFO] [stdout]     |
[INFO] [stdout] 556 | async fn connect_with_env_proxy(url: Url, config: &Config, timeout_secs: u64, tls_connector: Option<native_tls::TlsConnector>) -> R...
[INFO] [stdout]     |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tls_connector`
[INFO] [stdout]    --> src/client.rs:556:79
[INFO] [stdout]     |
[INFO] [stdout] 556 | ...timeout_secs: u64, tls_connector: Option<native_tls::TlsConnector>) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tls_connector`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/client.rs:607:9
[INFO] [stdout]     |
[INFO] [stdout] 607 |     for i in 1..2 {  // 只发送一条，避免被断开连接
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client.rs:931:9
[INFO] [stdout]     |
[INFO] [stdout] 931 |     let mut config = Config {
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinanceWSInfo` is never constructed
[INFO] [stdout]   --> src/client.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct BinanceWSInfo {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "068fb0736d8cb375ccbaec4d924d7142d4890327fc4ba31aa78c95dd179d376f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "068fb0736d8cb375ccbaec4d924d7142d4890327fc4ba31aa78c95dd179d376f", kill_on_drop: false }`
[INFO] [stdout] 068fb0736d8cb375ccbaec4d924d7142d4890327fc4ba31aa78c95dd179d376f
